package cn.edu.ncut.cs.springboot.petmanagementsystem.service;

import cn.edu.ncut.cs.springboot.petmanagementsystem.dto.PetInformationDto;
import cn.edu.ncut.cs.springboot.petmanagementsystem.pojo.Pet;
import cn.edu.ncut.cs.springboot.petmanagementsystem.vo.PetInformationVo;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

public interface PetService {
    /**
     * 分页动态查询宠物信息
     * @param pageNO
     * @param pageSize
     * @param petName
     * @param petType
     * @param gender
     * @return
     */
    IPage<PetInformationVo> getPetsByCondition(Integer pageNO,
                                               Integer pageSize, String petName, String petType, Integer gender);

    /**
     * 修改宠物信息
     * @param petInformationDto
     */
    void UpdatePetInformation(PetInformationDto petInformationDto);

    /**
     * 批量删除宠物信息
     * @param ids
     * @return
     */
    boolean deletePetBatch(List<Long> ids);

    /**
     * 逻辑删除单个宠物（将deleted置为true）
     */
    boolean deletePetById(Long id);

    /**
     * 创建宠物信息
     * @param petInformationDto
     * @return
     */
    boolean createPet(PetInformationDto petInformationDto);

    /**
     * 获取用户的宠物列表
     * @param userId
     * @return
     */
    List<PetInformationVo> getUserPets(Long userId);

    /**
     * 根据ID获取宠物详情
     * @param id
     * @return
     */
    PetInformationVo getPetById(Long id);
}
